config GKI_HIDDEN_DRM_CONFIGS
	bool "Hidden DRM configs needed for GKI"
	select DRM_KMS_HELPER if (HAS_IOMEM && DRM)
	select DRM_GEM_CMA_HELPER
	select DRM_MIPI_DSI
	select DRM_TTM if (HAS_IOMEM && DRM)
	select VIDEOMODE_HELPERS
	help
	  Dummy config option used to enable hidden DRM configs.
	  These are normally selected implicitly when including a
	  DRM module, but for GKI, the modules are built out-of-tree.

config GKI_HIDDEN_REGMAP_CONFIGS
	bool "Hidden Regmap configs needed for GKI"
	select REGMAP_IRQ
	help
	  Dummy config option used to enable hidden regmap configs.
	  These are normally selected implicitly when a module
	  that relies on it is configured.

config GKI_HIDDEN_CRYPTO_CONFIGS
	bool "Hidden CRYPTO configs needed for GKI"
	select CRYPTO_ENGINE
	help
	  Dummy config option used to enable hidden CRYPTO configs.
	  These are normally selected implicitly when a module
	  that relies on it is configured.

config GKI_HIDDEN_SND_CONFIGS
	bool "Hidden SND configs needed for GKI"
	select SND_VMASTER
	select SND_PCM_ELD
	select SND_JACK
	select SND_JACK_INPUT_DEV
	help
	  Dummy config option used to enable hidden SND configs.
	  These are normally selected implicitly when a module
	  that relies on it is configured.

config GKI_HIDDEN_SND_SOC_CONFIGS
	bool "Hidden SND_SOC configs needed for GKI"
	select SND_SOC_GENERIC_DMAENGINE_PCM if (SND_SOC && SND)
	select SND_SOC_COMPRESS if (SND_SOC && SND)
	help
	  Dummy config option used to enable hidden SND_SOC configs.
	  These are normally selected implicitly when a module
	  that relies on it is configured.

config GKI_HIDDEN_GPIO_CONFIGS
	bool "Hidden GPIO configs needed for GKI"
	select PINCTRL_SINGLE if (PINCTRL && OF && HAS_IOMEM)
	select GPIO_PL061 if (HAS_IOMEM && ARM_AMBA && GPIOLIB)
	help
	  Dummy config option used to enable hidden GPIO configs.
	  These are normally selected implicitly when a module
	  that relies on it is configured.

config GKI_HIDDEN_VIRTUAL_CONFIGS
	bool "Hidden Virtual configs needed for GKI"
	select HVC_DRIVER
	help
	  Dummy config option used to enable hidden virtual device configs.
	  These are normally selected implicitly when a module
	  that relies on it is configured.

# LEGACY_WEXT_ALLCONFIG Discussed upstream, soundly rejected as a unique
# problem for GKI to solve.  It should be noted that these extensions are
# in-effect deprecated and generally unsupported and we should pressure
# the SOC vendors to drop any modules that require these extensions.
config GKI_LEGACY_WEXT_ALLCONFIG
	bool "Hidden wireless extension configs needed for GKI"
	select WIRELESS_EXT
	select WEXT_CORE
	select WEXT_PROC
	select WEXT_SPY
	select WEXT_PRIV
	help
	  Dummy config option used to enable all the hidden legacy wireless
	  extensions to the core wireless network functionality used by
	  add-in modules.

	  If you are not building a kernel to be used for a variety of
	  out-of-kernel built wireless modules, say N here.

config GKI_HIDDEN_SOC_PM_CONFIGS
	bool "Hidden SOC Power Management configs for GKI"
	select PM_GENERIC_DOMAINS if PM
	help
	  Dummy config option used to enable all the hidden SOC specific power
	  management add-in modules.

config GKI_HIDDEN_VIDEOBUF2_CONFIGS
	bool "Hidden v4l2 configs for GKI"
	select V4L2_MEM2MEM_DEV if VIDEO_V4L2
	select VIDEOBUF2_CORE if VIDEO_V4L2
	select VIDEOBUF2_V4L2 if VIDEO_V4L2
	select VIDEOBUF2_VMALLOC if VIDEO_V4L2
	select VIDEOBUF2_MEMOPS if VIDEO_V4L2
	help
	  Dummy config option used to enable all the hidden v4l2 media module.

config GKI_HIDDEN_USB_CONFIGS
	bool "Hiddel USB configurations needed for GKI"
	select USB_PHY
	help
	  Dummy config option used to enable all USB related hidden configs.
	  These configurations are usually only selected by another config
	  option or a combination of them.

	  If you are not building a kernel to be used for a variety of
	  out-of-kernel build USB drivers, say N here.

config GKI_HIDDEN_SOC_BUS_CONFIGS
	bool "Hidden SoC bus configuration needed for GKI"
	select SOC_BUS
	  help
	    Dummy config option used to enable SOC_BUS hidden Kconfig.
	    The configuration is required for SoCs to register themselves to the bus.

	    If you are not building a kernel to be used for a variety of SoCs and
	    out-of-tree drivers, say N here.

config GKI_HIDDEN_GPU_CONFIGS
	bool "Hidden GPU configuration needed for GKI"
	select TRACE_GPU_MEM
	help
	  Dummy config option used to enable the hidden GPU config.
	  These are normally selected implicitly when a module
	  that relies on it is configured.

config GKI_HIDDEN_IRQ_CONFIGS
	bool "Hidden IRQ configuration needed for GKI"
	select GENERIC_IRQ_CHIP
	help
	  Dummy config option used to enable GENERIC_IRQ_CHIP hidden
	  config, required by various SoC platforms. This is usually
	  selected by ARCH_*.

# Atrocities needed for
# a) building GKI modules in separate tree, or
# b) building drivers that are not modularizable
#
# All of these should be reworked into an upstream solution
# if possible.
#
config GKI_HACKS_TO_FIX
	bool "GKI Dummy config options"
	select GKI_HIDDEN_CRYPTO_CONFIGS
	select GKI_HIDDEN_DRM_CONFIGS
	select GKI_HIDDEN_REGMAP_CONFIGS
	select GKI_HIDDEN_SND_CONFIGS
	select GKI_HIDDEN_SND_SOC_CONFIGS
	select GKI_HIDDEN_GPIO_CONFIGS
	select GKI_LEGACY_WEXT_ALLCONFIG
	select GKI_HIDDEN_VIRTUAL_CONFIGS
	select GKI_HIDDEN_SOC_PM_CONFIGS
	select GKI_HIDDEN_VIDEOBUF2_CONFIGS
	select GKI_HIDDEN_USB_CONFIGS
	select GKI_HIDDEN_SOC_BUS_CONFIGS
	select GKI_HIDDEN_GPU_CONFIGS
	select GKI_HIDDEN_IRQ_CONFIGS
	help
	  Dummy config option used to enable core functionality used by
	  modules that may not be selectable in this config.

	  Unless you are building a GKI kernel to be used with modules
	  built from a different config, say N here.
